package com.eshop.modules.system.service.dto;

import java.sql.Timestamp;
import com.eshop.modules.system.domain.Menu;
import java.util.Set;
import java.io.Serializable;

public class RoleDto implements Serializable
{
    private Long id;
    private String name;
    private String remark;
    private String dataScope;
    private Integer level;
    private Set<Menu> menus;
    private Timestamp createTime;
    private String permission;
    
    public Long getId() {
        return this.id;
    }
    
    public String getName() {
        return this.name;
    }
    
    public String getRemark() {
        return this.remark;
    }
    
    public String getDataScope() {
        return this.dataScope;
    }
    
    public Integer getLevel() {
        return this.level;
    }
    
    public Set<Menu> getMenus() {
        return this.menus;
    }
    
    public Timestamp getCreateTime() {
        return this.createTime;
    }
    
    public String getPermission() {
        return this.permission;
    }
    
    public void setId(final Long id) {
        this.id = id;
    }
    
    public void setName(final String name) {
        this.name = name;
    }
    
    public void setRemark(final String remark) {
        this.remark = remark;
    }
    
    public void setDataScope(final String dataScope) {
        this.dataScope = dataScope;
    }
    
    public void setLevel(final Integer level) {
        this.level = level;
    }
    
    public void setMenus(final Set<Menu> menus) {
        this.menus = menus;
    }
    
    public void setCreateTime(final Timestamp createTime) {
        this.createTime = createTime;
    }
    
    public void setPermission(final String permission) {
        this.permission = permission;
    }
    
    @Override
    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof RoleDto)) {
            return false;
        }
        final RoleDto other = (RoleDto)o;
        if (!other.canEqual(this)) {
            return false;
        }
        final Object this$id = this.getId();
        final Object other$id = other.getId();
        Label_0065: {
            if (this$id == null) {
                if (other$id == null) {
                    break Label_0065;
                }
            }
            else if (this$id.equals(other$id)) {
                break Label_0065;
            }
            return false;
        }
        final Object this$level = this.getLevel();
        final Object other$level = other.getLevel();
        Label_0102: {
            if (this$level == null) {
                if (other$level == null) {
                    break Label_0102;
                }
            }
            else if (this$level.equals(other$level)) {
                break Label_0102;
            }
            return false;
        }
        final Object this$name = this.getName();
        final Object other$name = other.getName();
        Label_0139: {
            if (this$name == null) {
                if (other$name == null) {
                    break Label_0139;
                }
            }
            else if (this$name.equals(other$name)) {
                break Label_0139;
            }
            return false;
        }
        final Object this$remark = this.getRemark();
        final Object other$remark = other.getRemark();
        Label_0176: {
            if (this$remark == null) {
                if (other$remark == null) {
                    break Label_0176;
                }
            }
            else if (this$remark.equals(other$remark)) {
                break Label_0176;
            }
            return false;
        }
        final Object this$dataScope = this.getDataScope();
        final Object other$dataScope = other.getDataScope();
        Label_0213: {
            if (this$dataScope == null) {
                if (other$dataScope == null) {
                    break Label_0213;
                }
            }
            else if (this$dataScope.equals(other$dataScope)) {
                break Label_0213;
            }
            return false;
        }
        final Object this$menus = this.getMenus();
        final Object other$menus = other.getMenus();
        Label_0250: {
            if (this$menus == null) {
                if (other$menus == null) {
                    break Label_0250;
                }
            }
            else if (this$menus.equals(other$menus)) {
                break Label_0250;
            }
            return false;
        }
        final Object this$createTime = this.getCreateTime();
        final Object other$createTime = other.getCreateTime();
        Label_0287: {
            if (this$createTime == null) {
                if (other$createTime == null) {
                    break Label_0287;
                }
            }
            else if (this$createTime.equals(other$createTime)) {
                break Label_0287;
            }
            return false;
        }
        final Object this$permission = this.getPermission();
        final Object other$permission = other.getPermission();
        if (this$permission == null) {
            if (other$permission == null) {
                return true;
            }
        }
        else if (this$permission.equals(other$permission)) {
            return true;
        }
        return false;
    }
    
    protected boolean canEqual(final Object other) {
        return other instanceof RoleDto;
    }
    
    @Override
    public int hashCode() {
        final int PRIME = 59;
        int result = 1;
        final Object $id = this.getId();
        result = result * 59 + (($id == null) ? 43 : $id.hashCode());
        final Object $level = this.getLevel();
        result = result * 59 + (($level == null) ? 43 : $level.hashCode());
        final Object $name = this.getName();
        result = result * 59 + (($name == null) ? 43 : $name.hashCode());
        final Object $remark = this.getRemark();
        result = result * 59 + (($remark == null) ? 43 : $remark.hashCode());
        final Object $dataScope = this.getDataScope();
        result = result * 59 + (($dataScope == null) ? 43 : $dataScope.hashCode());
        final Object $menus = this.getMenus();
        result = result * 59 + (($menus == null) ? 43 : $menus.hashCode());
        final Object $createTime = this.getCreateTime();
        result = result * 59 + (($createTime == null) ? 43 : $createTime.hashCode());
        final Object $permission = this.getPermission();
        result = result * 59 + (($permission == null) ? 43 : $permission.hashCode());
        return result;
    }
    
    @Override
    public String toString() {
        return "RoleDto(id=" + this.getId() + ", name=" + this.getName() + ", remark=" + this.getRemark() + ", dataScope=" + this.getDataScope() + ", level=" + this.getLevel() + ", menus=" + this.getMenus() + ", createTime=" + this.getCreateTime() + ", permission=" + this.getPermission() + ")";
    }
}
